This disclosure relates generally to database management systems, and more specifically, to reducing the cost of update delete, and append-only insert operations in a database.
Database manager modules may perform the two functions of accessing and modifying data from a database. Database managers may access data by selecting and delivering particular database records requested by a user based on a query statement. The query statement specifies the particular attributes (e.g., columns), table, and query conditions that a user desires. Database managers may modify data by inserting new database records (rows) in a table, updating values within the database records, or deleting particular database records from a table matching specified query conditions.
In a database management system, many users may access or modify the same data concurrently (i.e., in parallel). Unless some kind of restriction is imposed on the activity of user transactions, data in the system may be modified in some unintended way. For example, application A may update a value in a database, and application B may read that value before the value was committed (i.e., before the associated transaction was completed). If the value of A is not later committed, the calculations performed by B are based on uncommitted and presumably invalid data. Accordingly, database management systems may utilize concurrency control schemes to maintain database consistency and coordinate user transactions.